Sensor এবং Actuators এর সাথে কাজ করা (Working with Sensors and Actuators)

Computer Programming - আরডুইনো (Arduino)
255
255

Arduino প্রোগ্রামিংয়ের মাধ্যমে Sensors এবং Actuators এর সাথে কাজ করে বিভিন্ন ধরনের ইলেকট্রনিক প্রকল্প তৈরি করা সম্ভব। সেন্সর এবং অ্যাকচুয়েটর ব্যবহার করে Arduino প্রকল্পগুলোকে স্মার্ট এবং ইন্টারঅ্যাকটিভ করা যায়।

Sensors (সেন্সর)

Sensors হলো এমন ডিভাইস যা পরিবেশের বিভিন্ন প্যারামিটার যেমন তাপমাত্রা, আর্দ্রতা, আলো, গতি ইত্যাদি সংগ্রহ করে এবং Arduino-তে সিগন্যাল হিসেবে পাঠায়। সেন্সরগুলো সাধারণত দুটি ধরনের হতে পারে:

  • Analog Sensors: এনালগ মান প্রদান করে যা নির্দিষ্ট রেঞ্জের মধ্যে ভিন্ন হতে পারে (যেমন তাপমাত্রা সেন্সর)।
  • Digital Sensors: কেবল দুইটি মান প্রদান করে – HIGH বা LOW (যেমন বাটন, PIR সেন্সর)।

উদাহরণ: তাপমাত্রা সেন্সর (LM35)

void setup() {
  Serial.begin(9600); // সিরিয়াল মনিটর শুরু করা
}

void loop() {
  int sensorValue = analogRead(A0); // A0 পিন থেকে সেন্সর মান পড়া
  float temperature = (sensorValue * 5.0 / 1023.0) * 100; // তাপমাত্রা ক্যালকুলেশন
  Serial.print("Temperature: ");
  Serial.print(temperature);
  Serial.println(" C");
  delay(1000); // ১ সেকেন্ড বিরতি
}

Actuators (অ্যাকচুয়েটর)

Actuators হলো এমন ডিভাইস যা Arduino থেকে নির্দেশ পেয়ে কার্যক্রম পরিচালনা করে, যেমন মোটর, রিলে, সার্ভো ইত্যাদি। এগুলো বিভিন্ন প্রকারের হতে পারে:

  • Electromechanical Actuators: যেমন DC মোটর, সার্ভো মোটর।
  • Electrical Actuators: যেমন রিলে।

উদাহরণ: DC মোটর নিয়ন্ত্রণ

void setup() {
  pinMode(9, OUTPUT); // PWM আউটপুট পিন হিসেবে কনফিগার করা
}

void loop() {
  analogWrite(9, 128); // মোটরের স্পিড ৫০% এ সেট করা (0-255 এর মধ্যে 128)
  delay(2000); // ২ সেকেন্ড মোটর চালানো
  analogWrite(9, 0); // মোটর বন্ধ করা
  delay(2000); // ২ সেকেন্ড অপেক্ষা
}

Sensors এবং Actuators এর সাথে কাজ করার ধাপসমূহ

  1. Hardware Setup: সেন্সর বা অ্যাকচুয়েটরকে সঠিকভাবে Arduino বোর্ডের সাথে সংযুক্ত করুন। উদাহরণস্বরূপ, তাপমাত্রা সেন্সরকে এনালগ পিনে সংযুক্ত করুন এবং মোটরকে PWM পিনে সংযুক্ত করুন।
  2. Code Initialization: pinMode() ফাংশন ব্যবহার করে ইনপুট এবং আউটপুট পিন কনফিগার করুন।
  3. Data Reading and Processing: analogRead() বা digitalRead() ফাংশন ব্যবহার করে সেন্সর ডেটা পড়ুন এবং প্রসেস করুন।
  4. Actuation Command: analogWrite() বা digitalWrite() ফাংশন ব্যবহার করে অ্যাকচুয়েটরে সিগন্যাল পাঠান।

সাধারণ প্রয়োগ

  • Automated Lighting System: LDR (Light Dependent Resistor) সেন্সর ব্যবহার করে আলোর উপর ভিত্তি করে LED চালু বা বন্ধ করা।
  • Smart Fan Control: তাপমাত্রা সেন্সরের ডেটার ভিত্তিতে ফ্যানের গতি নিয়ন্ত্রণ করা।
  • Security System: PIR সেন্সর ব্যবহার করে অনুপ্রবেশ শনাক্ত করা এবং অ্যালার্ম চালানো।
  • Robot Movement: সার্ভো মোটর এবং DC মোটরের সাহায্যে রোবটের চলাচল নিয়ন্ত্রণ করা।

চ্যালেঞ্জ এবং সমস্যা সমাধান

  • Noise Filtering: সেন্সর ডেটায় নয়েজ কমাতে সফটওয়্যার ফিল্টারিং বা হার্ডওয়্যার ক্যাপাসিটর ব্যবহার করুন।
  • Precision Issues: সেন্সরের রেঞ্জ এবং রেজোলিউশনের সীমাবদ্ধতার জন্য সঠিক ক্যালিব্রেশন ব্যবহার করুন।
  • Overloading Actuators: বড় অ্যাকচুয়েটর চালানোর জন্য সরাসরি Arduino পিনের পরিবর্তে ট্রানজিস্টর বা রিলে ব্যবহার করুন।

টিপস

  • সঠিক পাওয়ার সাপ্লাই ব্যবহার করুন: বড় আকারের অ্যাকচুয়েটরের জন্য আলাদা পাওয়ার সাপ্লাই ব্যবহার করা উচিত।
  • কোডে ডিলে ব্যবহার করুন: যথাযথ বিরতির জন্য delay() ব্যবহার করুন, যাতে সেন্সরের সঠিক মান পাওয়া যায় এবং অ্যাকচুয়েটরের কার্যক্রম নিয়ন্ত্রণ করা যায়।
  • সফটওয়্যার ডিবাগিং: সেন্সর ডেটা যাচাই করার জন্য Serial.print() ব্যবহার করে কোড ডিবাগ করুন।

Arduino-তে Sensors এবং Actuators ব্যবহার করে বিভিন্ন স্মার্ট এবং ইন্টারঅ্যাকটিভ প্রোজেক্ট তৈরি করা যায়। এটি ব্যবহারকারীদের প্রকল্পে স্বয়ংক্রিয়তা এবং গতিশীলতা যুক্ত করতে সহায়তা করে, যা প্রকল্পগুলিকে আরও কার্যকর এবং বাস্তবিক করে তোলে।

common.content_added_by

Ultrasonic Sensor এর ব্যবহার

301
301

Ultrasonic Sensor একটি বিশেষ ধরনের সেন্সর যা দূরত্ব মাপার জন্য ব্যবহৃত হয়। এটি মূলত শব্দ তরঙ্গের প্রতিফলন ব্যবহার করে একটি নির্দিষ্ট বস্তু পর্যন্ত দূরত্ব পরিমাপ করে। Arduino প্রোজেক্টে HC-SR04 মডেলটি সবচেয়ে বেশি ব্যবহৃত হয়।

HC-SR04 Ultrasonic Sensor এর গঠন

এই সেন্সরে দুটি প্রধান পিন থাকে:

  • Trigger পিন: সংকেত পাঠানোর জন্য।
  • Echo পিন: প্রতিফলিত সংকেত গ্রহণ করার জন্য।

সংযোগ ব্যবস্থা

HC-SR04 সেন্সরটিকে Arduino বোর্ডে সংযুক্ত করতে চারটি পিন ব্যবহার করতে হবে:

  • VCC: 5V এ সংযুক্ত।
  • GND: GND এ সংযুক্ত।
  • Trigger: Arduino এর ডিজিটাল পিনে সংযুক্ত (উদাহরণস্বরূপ, পিন 9)।
  • Echo: Arduino এর ডিজিটাল পিনে সংযুক্ত (উদাহরণস্বরূপ, পিন 10)।

Ultrasonic Sensor এর কার্যপ্রণালী

Trigger পিনে একটি ১০ মাইক্রোসেকেন্ডের HIGH পালস পাঠানো হলে, সেন্সরটি একটি ৪০ kHz এর শব্দ তরঙ্গ প্রেরণ করে। বস্তু থেকে প্রতিফলিত হয়ে সেই তরঙ্গ Echo পিনে ফিরে আসে। Echo পিনে HIGH অবস্থায় থাকা সময়ের উপর ভিত্তি করে দূরত্ব নির্ধারণ করা হয়।

Ultrasonic Sensor দিয়ে দূরত্ব মাপা (Arduino কোড)

const int trigPin = 9; // Trigger পিন
const int echoPin = 10; // Echo পিন

void setup() {
  pinMode(trigPin, OUTPUT); // Trigger পিনকে আউটপুট হিসেবে কনফিগার করা
  pinMode(echoPin, INPUT); // Echo পিনকে ইনপুট হিসেবে কনফিগার করা
  Serial.begin(9600); // সিরিয়াল মনিটর শুরু করা
}

void loop() {
  long duration;
  int distance;

  // Trigger পিনে ১০ মাইক্রোসেকেন্ডের HIGH পালস পাঠানো
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);

  // Echo পিনে প্রতিফলিত সংকেত গ্রহণ করা
  duration = pulseIn(echoPin, HIGH);

  // দূরত্ব নির্ধারণ করা (সময়কে সেন্টিমিটারে রূপান্তর)
  distance = duration * 0.034 / 2;

  // দূরত্ব প্রিন্ট করা
  Serial.print("Distance: ");
  Serial.print(distance);
  Serial.println(" cm");

  delay(500); // ০.৫ সেকেন্ড অপেক্ষা
}

কোডের বিশ্লেষণ

  • digitalWrite(trigPin, HIGH): Trigger পিনে সংকেত পাঠানো।
  • pulseIn(echoPin, HIGH): Echo পিনে সংকেত প্রাপ্তির সময় পরিমাপ।
  • distance = duration * 0.034 / 2: সময়কে দূরত্বে রূপান্তর করা (0.034 হলো শব্দের গতি (cm/μs) এবং দূরত্ব নির্ধারণের জন্য সময়কে ২ দিয়ে ভাগ করা হয়)।

ব্যবহারিক প্রয়োগ

  • অটোমেটেড রোবটিক্স: রোবটের সামনের অবস্থা পর্যবেক্ষণ এবং বাধা শনাক্তকরণে।
  • পার্কিং সেন্সর: গাড়ির সামনে বা পেছনের বাধা নির্ধারণ।
  • লেভেল মিটার: পানির ট্যাংকের লেভেল পর্যবেক্ষণ।

ব্যবহারের সতর্কতা

  • পরিসীমা: HC-SR04 সাধারণত ২ সেমি থেকে ৪ মিটার পর্যন্ত সঠিক দূরত্ব পরিমাপ করতে পারে।
  • মাউন্টিং: সঠিক ফলাফল পেতে সেন্সরটিকে সঠিক কোণে স্থাপন করতে হবে।
  • পরিবেশ: অতিরিক্ত শব্দ এবং বস্তুর পৃষ্ঠের ধরন ফলাফলকে প্রভাবিত করতে পারে।

Ultrasonic Sensor ব্যবহারের মাধ্যমে সহজে এবং কার্যকরভাবে বিভিন্ন প্রকার দূরত্ব নির্ধারণ প্রোজেক্ট তৈরি করা যায়। এটি বিভিন্ন প্রকল্পে যেমন রোবটিক্স, নিরাপত্তা ব্যবস্থা এবং স্বয়ংক্রিয় প্রক্রিয়ায় বহুল ব্যবহৃত হয়।

common.content_added_by

Temperature Sensor (LM35) এর প্রয়োগ

228
228

LM35 হলো একটি সুনির্দিষ্ট এবং সহজে ব্যবহারযোগ্য তাপমাত্রা সেন্সর যা তাপমাত্রা পরিমাপ করতে ব্যবহৃত হয়। এটি সেলসিয়াস স্কেলে তাপমাত্রা পড়ে এবং সরাসরি ভোল্টেজ আউটপুট প্রদান করে, যা Arduino দিয়ে সহজে পড়া এবং প্রক্রিয়াকৃত করা যায়।

LM35 এর বৈশিষ্ট্য

  • উচ্চ নির্ভুলতা: ±0.5°C নির্ভুলতা।
  • লাইনিয়ার আউটপুট: প্রতি 1°C তাপমাত্রা বৃদ্ধির সাথে আউটপুট 10 mV বৃদ্ধি পায়।
  • সরাসরি তাপমাত্রা পরিমাপ: কোনো বাহ্যিক ক্যালিব্রেশন প্রয়োজন হয় না।

প্রয়োজনীয় উপাদান

  • LM35 তাপমাত্রা সেন্সর
  • Arduino বোর্ড (যেমন Arduino Uno)
  • সংযোগ তার
  • ব্রেডবোর্ড

সংযোগ

LM35 তাপমাত্রা সেন্সরটিকে Arduino বোর্ডের সাথে নিচেরভাবে সংযুক্ত করুন:

  • VCC (পিন 1): Arduino-এর ৫V পিনের সাথে সংযুক্ত।
  • OUT (পিন 2): Arduino-এর A0 এনালগ পিনের সাথে সংযুক্ত।
  • GND (পিন 3): Arduino-এর GND পিনের সাথে সংযুক্ত।

কোড উদাহরণ

নিচে LM35 তাপমাত্রা সেন্সর থেকে ডেটা পড়ে তাপমাত্রা সিরিয়াল মনিটরে প্রিন্ট করার একটি উদাহরণ দেওয়া হলো:

void setup() {
  Serial.begin(9600); // সিরিয়াল কমিউনিকেশন শুরু করা
}

void loop() {
  int sensorValue = analogRead(A0); // A0 পিন থেকে এনালগ ডেটা পড়া
  float voltage = sensorValue * (5.0 / 1023.0); // সেন্সর মানকে ভোল্টেজে রূপান্তর করা
  float temperature = voltage * 100; // তাপমাত্রা সেলসিয়াসে রূপান্তর করা

  Serial.print("Temperature: ");
  Serial.print(temperature);
  Serial.println(" °C");

  delay(1000); // ১ সেকেন্ড অপেক্ষা
}

কোড ব্যাখ্যা

  • analogRead(A0): A0 পিন থেকে ১০-বিট এনালগ মান পড়ে, যার মান ০ থেকে ১০২৩ পর্যন্ত হতে পারে।
  • voltage = sensorValue * (5.0 / 1023.0): সেন্সরের মানকে ভোল্টেজে রূপান্তর করা হয়, যেখানে ৫V হলো রেফারেন্স ভোল্টেজ।
  • temperature = voltage * 100: LM35 সেন্সর প্রতি ডিগ্রি সেলসিয়াসে ১০ mV আউটপুট দেয়। তাই ভোল্টেজ মানকে ১০০ দিয়ে গুণ করলে তাপমাত্রা সেলসিয়াসে পাওয়া যায়।

ব্যবহারিক উদাহরণ

আপনি এই প্রকল্পে এলার্ম সিস্টেম যুক্ত করতে পারেন, যা নির্দিষ্ট তাপমাত্রার উপরে পৌঁছালে এলইডি জ্বলে ওঠে বা বীপ দেয়:

void setup() {
  pinMode(13, OUTPUT); // পিন ১৩ কে আউটপুট হিসেবে কনফিগার করা (LED)
  Serial.begin(9600);
}

void loop() {
  int sensorValue = analogRead(A0);
  float voltage = sensorValue * (5.0 / 1023.0);
  float temperature = voltage * 100;

  Serial.print("Temperature: ");
  Serial.print(temperature);
  Serial.println(" °C");

  if (temperature > 30) { // যদি তাপমাত্রা ৩০°C এর বেশি হয়
    digitalWrite(13, HIGH); // LED অন করা
  } else {
    digitalWrite(13, LOW); // LED অফ করা
  }

  delay(1000);
}

সমস্যা সমাধান টিপস

  • তাপমাত্রা সঠিক না হলে: নিশ্চিত করুন যে সেন্সরের VCC এবং GND সঠিকভাবে সংযুক্ত আছে।
  • প্রয়োজনীয় ক্যালিব্রেশন: যদি রিডিং ঠিক না হয়, তাহলে ভোল্টেজ ক্যালিব্রেশন নিশ্চিত করুন।
  • পরিবেশগত প্রভাব: তাপমাত্রা পরিমাপ করার সময় পরিবেশগত শর্ত বিবেচনা করুন, যেমন বাতাস বা সরাসরি সূর্যের আলো।

LM35 সেন্সরের মাধ্যমে Arduino-তে তাপমাত্রা পরিমাপ করা সহজ এবং কার্যকরী। এটি তাপমাত্রা মনিটরিং, স্বয়ংক্রিয় কুলিং সিস্টেম এবং অন্যান্য IoT প্রোজেক্টের জন্য উপযুক্ত।

common.content_added_by

Servo Motor এর সাথে কাজ করা

263
263

Servo Motor হলো একটি বিশেষ ধরনের মোটর যা নির্দিষ্ট কোণ বা অবস্থানে সঠিকভাবে নিয়ন্ত্রণ করা যায়। এটি সাধারণত রোবটিক্স, মেশিন, এবং কন্ট্রোল সিস্টেমে ব্যবহৃত হয় যেখানে মোটরের নির্দিষ্ট কোণে ঘুরানোর প্রয়োজন হয়। Arduino তে Servo Motor ব্যবহার করা খুবই সহজ এবং কার্যকরী।

প্রয়োজনীয় উপাদান

  • Arduino বোর্ড (যেমন, Arduino Uno)
  • Servo Motor
  • জাম্পার তার
  • ব্রেডবোর্ড (ঐচ্ছিক)

Servo Motor সংযোগ

Servo Motor-এর তিনটি সংযোগ পিন থাকে:

  1. VCC (Power): Servo মোটরের পাওয়ার পিন, যা Arduino এর ৫V পিনের সাথে সংযুক্ত হবে।
  2. GND (Ground): Arduino এর GND পিনের সাথে সংযুক্ত হবে।
  3. Signal (Control): PWM সিগন্যাল পিন, Arduino এর যেকোনো digital PWM পিন (যেমন, পিন ৯) এর সাথে সংযুক্ত হবে।

সার্কিট সংযোগ

Servo Motor পিন সংযোগ:
[VCC] ----- [5V] Arduino
[GND] ----- [GND] Arduino
[Signal] -- [Pin 9] Arduino

Servo লাইব্রেরি ইনক্লুড করা

Arduino IDE তে Servo Motor পরিচালনা করতে, Servo.h লাইব্রেরি ব্যবহার করা হয়। এই লাইব্রেরিটি Servo Motor নিয়ন্ত্রণ করার জন্য প্রয়োজনীয় ফাংশন এবং পদ্ধতি প্রদান করে।

#include <Servo.h> // Servo লাইব্রেরি ইনক্লুড করা

কোড উদাহরণ: Servo Motor নিয়ন্ত্রণ

Servo Motor কে নির্দিষ্ট কোণ থেকে অন্য কোণে ঘোরানোর উদাহরণ:

#include <Servo.h> // Servo লাইব্রেরি ইনক্লুড করা

Servo myServo; // Servo অবজেক্ট তৈরি

void setup() {
  myServo.attach(9); // Servo মোটর Arduino এর পিন ৯ এ সংযুক্ত
}

void loop() {
  myServo.write(0); // Servo কে ০ ডিগ্রীতে ঘোরানো
  delay(1000); // ১ সেকেন্ড অপেক্ষা

  myServo.write(90); // Servo কে ৯০ ডিগ্রীতে ঘোরানো
  delay(1000); // ১ সেকেন্ড অপেক্ষা

  myServo.write(180); // Servo কে ১৮০ ডিগ্রীতে ঘোরানো
  delay(1000); // ১ সেকেন্ড অপেক্ষা
}

কোড ব্যাখ্যা

  • Servo myServo;: একটি Servo অবজেক্ট তৈরি করা হয়, যা মোটর নিয়ন্ত্রণ করতে ব্যবহৃত হবে।
  • myServo.attach(9);: Servo মোটরকে Arduino এর পিন ৯ এর সাথে সংযুক্ত করা হয়।
  • myServo.write(angle);: Servo কে নির্দিষ্ট কোণে ঘোরানো হয়। এখানে angle মান ০ থেকে ১৮০ ডিগ্রীর মধ্যে হতে পারে।

ব্যবহারিক উদাহরণ: Potentiometer দিয়ে Servo নিয়ন্ত্রণ

Servo Motor কে Potentiometer ব্যবহার করে নিয়ন্ত্রণের উদাহরণ:

#include <Servo.h>

Servo myServo;
const int potPin = A0; // Potentiometer সংযুক্ত পিন

void setup() {
  myServo.attach(9); // Servo মোটর পিন ৯ এ সংযুক্ত
}

void loop() {
  int potValue = analogRead(potPin); // Potentiometer থেকে মান পড়া
  int angle = map(potValue, 0, 1023, 0, 180); // মানকে কোণে রূপান্তর করা
  myServo.write(angle); // Servo মোটরকে কোণে ঘোরানো
  delay(15); // সামান্য বিলম্ব
}

কোড ব্যাখ্যা

  • analogRead(potPin);: Potentiometer থেকে মান পড়া হয়।
  • map(potValue, 0, 1023, 0, 180);: Potentiometer থেকে প্রাপ্ত মানকে Servo মোটরের কোণে রূপান্তর করা হয় (০ থেকে ১৮০ ডিগ্রী)।
  • myServo.write(angle);: Servo মোটরকে নির্দিষ্ট কোণে ঘোরানো হয়।

Servo Motor ব্যবহারে টিপস

  • পাওয়ার সরবরাহ: বড় Servo Motor ব্যবহার করলে বাহ্যিক পাওয়ার সাপ্লাই ব্যবহার করা প্রয়োজন হতে পারে, কারণ Arduino এর ৫V পিন থেকে সীমিত কারেন্ট পাওয়া যায়।
  • Delay: Servo ঘোরানোর পরে সামান্য delay() ব্যবহার করলে Servo তার গন্তব্যে সঠিকভাবে পৌঁছাতে পারে।
  • সঠিক কোণ: Servo মোটর সাধারণত ০ থেকে ১৮০ ডিগ্রী কোণে ঘুরতে পারে। এর বাইরে কোণ নির্ধারণ করলে Servo ক্ষতিগ্রস্ত হতে পারে।

Servo Motor Arduino তে ব্যবহার করে বিভিন্ন প্রজেক্টে সহজে এবং সুনির্দিষ্ট নিয়ন্ত্রণ অর্জন করা যায়। এটি রোবটিক্স, অটোমেশন এবং বিভিন্ন যান্ত্রিক ডিভাইস তৈরি করতে ব্যবহৃত হয়।

common.content_added_by

DC Motor এবং Motor Driver (L298N) এর ব্যবহার

245
245

DC Motor এর ধারণা

DC Motor হলো একটি মোটর যা সরাসরি ডিসি ভোল্টেজ ব্যবহার করে ঘূর্ণনশীল গতিতে কাজ করে। এটি বিভিন্ন ইলেকট্রনিক প্রোজেক্টে ব্যবহৃত হয়, যেমন রোবটিক্স, অটোমেশন এবং অন্যান্য মেকানিক্যাল সিস্টেম। DC Motor-এর গতি এবং দিক নির্দিষ্টভাবে নিয়ন্ত্রণ করার জন্য একটি Motor Driver প্রয়োজন হয়।

Motor Driver (L298N) এর ধারণা

L298N Motor Driver একটি দ্বৈত H-Bridge ড্রাইভার যা দুটি DC মোটরকে একসঙ্গে নিয়ন্ত্রণ করতে সক্ষম। এটি মোটরের গতি এবং ঘূর্ণনের দিক নিয়ন্ত্রণ করতে সহায়তা করে। L298N ড্রাইভার সাধারণত একটি মডিউল আকারে আসে, যা সহজে Arduino সহ অন্যান্য মাইক্রোকন্ট্রোলার বোর্ডের সাথে সংযুক্ত করা যায়।

L298N Motor Driver এর প্রধান অংশসমূহ

  • IN1, IN2, IN3, IN4: মোটরের দিক নিয়ন্ত্রণ করার জন্য ইনপুট পিন।
  • ENA এবং ENB: মোটরের গতি নিয়ন্ত্রণ করার জন্য এনাবল পিন।
  • 12V এবং GND: মোটরের পাওয়ার সাপ্লাই পিন।
  • OUT1, OUT2, OUT3, OUT4: মোটরের আউটপুট সংযোগ পিন।

L298N এর সাথে DC Motor সংযোগের ধাপসমূহ

  1. পাওয়ার সংযোগ: L298N এর 12V পিনে একটি উপযুক্ত ডিসি পাওয়ার সাপ্লাই সংযুক্ত করুন এবং GND পিনটি Arduino-এর GND এর সাথে সংযুক্ত করুন।
  2. Arduino সংযোগ:
    • IN1, IN2 (বা IN3, IN4) পিনগুলো Arduino-এর ডিজিটাল পিনে সংযুক্ত করুন।
    • ENA বা ENB পিনগুলো PWM সাপোর্টেড পিনের সাথে সংযুক্ত করুন, যাতে গতি নিয়ন্ত্রণ করা যায়।
  3. DC Motor সংযোগ: DC Motor-এর দুটি তার OUT1 এবং OUT2 (বা OUT3 এবং OUT4) এর সাথে সংযুক্ত করুন।

Arduino কোড উদাহরণ

নিচে একটি উদাহরণ কোড দেওয়া হলো যা একটি DC Motor কে L298N ড্রাইভার দিয়ে Arduino-এর মাধ্যমে নিয়ন্ত্রণ করে:

int in1 = 7;
int in2 = 8;
int ena = 9; // PWM পিন

void setup() {
  pinMode(in1, OUTPUT);
  pinMode(in2, OUTPUT);
  pinMode(ena, OUTPUT);
}

void loop() {
  // মোটর ঘড়ির কাঁটার দিকে ঘুরানো
  digitalWrite(in1, HIGH);
  digitalWrite(in2, LOW);
  analogWrite(ena, 150); // মোটরের গতি ০ থেকে ২৫৫ এর মধ্যে নির্ধারণ করা যায় (৫০% গতি)

  delay(2000); // ২ সেকেন্ড অপেক্ষা

  // মোটর বন্ধ করা
  digitalWrite(in1, LOW);
  digitalWrite(in2, LOW);

  delay(1000); // ১ সেকেন্ড অপেক্ষা

  // মোটর বিপরীত দিকে ঘুরানো
  digitalWrite(in1, LOW);
  digitalWrite(in2, HIGH);
  analogWrite(ena, 150);

  delay(2000); // ২ সেকেন্ড অপেক্ষা

  // মোটর বন্ধ করা
  digitalWrite(in1, LOW);
  digitalWrite(in2, LOW);

  delay(1000); // ১ সেকেন্ড অপেক্ষা
}

গতি এবং দিক নিয়ন্ত্রণ

  • গতি নিয়ন্ত্রণ: ENA বা ENB পিনে analogWrite() ফাংশনের মাধ্যমে PWM সংকেত প্রেরণ করে মোটরের গতি নিয়ন্ত্রণ করা যায়।
  • দিক নিয়ন্ত্রণ: IN1 এবং IN2 পিনের HIGH এবং LOW অবস্থা পরিবর্তন করে মোটরের ঘূর্ণনের দিক নিয়ন্ত্রণ করা হয়।

L298N এর ব্যবহারিক প্রয়োগ

  • রোবটিক্স: L298N ড্রাইভার একাধিক DC Motor কে স্বাধীনভাবে নিয়ন্ত্রণ করার মাধ্যমে রোবটকে চলতে এবং মোড় নিতে সাহায্য করে।
  • অটোমেশন প্রোজেক্ট: লাইন-ফলোয়িং রোবট, স্মার্ট কার ইত্যাদির ক্ষেত্রে L298N ড্রাইভার খুবই কার্যকর।
  • DIY প্রোজেক্ট: ছোট প্রজেক্টের ক্ষেত্রে মোটরের গতি এবং দিক পরিবর্তনের মাধ্যমে মেশিন চালনা করতে ব্যবহৃত হয়।

সতর্কতা

  • বিদ্যুৎ সরবরাহ নিশ্চিত করুন: DC Motor এবং L298N ড্রাইভারকে উপযুক্ত ভোল্টেজ এবং কারেন্ট সরবরাহ করতে হবে। অতিরিক্ত ভোল্টেজ বা কারেন্ট ড্রাইভার বা মোটর নষ্ট করতে পারে।
  • তাপ নিয়ন্ত্রণ: L298N ড্রাইভার ব্যবহারের সময় গরম হয়ে যেতে পারে, তাই প্রয়োজনীয় হলে হিটসিঙ্ক ব্যবহার করুন।

DC Motor এবং L298N Motor Driver-এর সাহায্যে Arduino প্রোজেক্টে মোটরের গতি এবং দিক নিয়ন্ত্রণ করা খুব সহজ এবং কার্যকর। এটি বিভিন্ন ইলেকট্রনিক প্রোজেক্টে অটোমেশন এবং কাস্টম মেকানিজম তৈরি করতে সহায়তা করে।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion